草庐IT

JavaScript Browser 对象 实例

全部标签

ruby - 直接访问实例变量与使用访问器方法

谁能解释一下通过self.attribute和@attribute访问实例属性的区别? 最佳答案 self.attribute调用方法attribute。self.attribute=value使用参数value调用方法attribute=。@attribute和@attribute=value获取/设置实例变量@attribute的值。所以基本上它们是两个完全不同的东西。但是,如果您调用attr_accessor:attribute,它定义方法attribute以返回@attribute和方法attribute=(value)来设

Ruby - 访问多维哈希并避免访问 nil 对象

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Ruby:NilsinanIFstatementIsthereacleanwaytoavoidcallingamethodonnilinanestedparamshash?假设我尝试访问这样的哈希:my_hash['key1']['key2']['key3']如果key1、key2和key3存在于散列中,这很好,但是如果key1不存在怎么办?然后我会得到NoMethodError:undefinedmethod[]fornil:NilClass。没有人喜欢这样。到目前为止,我通过以下条件处理此问题:ifmy_

ruby-on-rails - 如何在 Rails 中打印出对象的内容以便于调试?

我想我正在尝试获取与print_r()等效的PHP(打印人类可读);目前原始输出是:ActiveRecord::Relation:0x10355d1c0我该怎么办? 最佳答案 我通常会先尝试.inspect,如果这没有给我想要的结果,我会切换到.to_yaml。classUserattr_accessor:name,:ageenduser=User.newuser.name="JohnSmith"user.age=30putsuser.inspect#=>#putsuser.to_yaml#=>---!ruby/object:Use

ruby - 类变量和类实例变量之间的区别?

谁能告诉我类变量和类实例变量的区别? 最佳答案 类变量(@@)在类及其所有后代之间共享。类实例变量(@)不被类的后代共享。类变量(@@)让我们有一个类Foo和一个类变量@@i,以及读写访问器@@i:classFoo@@i=1defself.i@@ienddefself.i=(value)@@i=valueendend派生类:classBar我们看到Foo和Bar的@@i值相同:pFoo.i#=>1pBar.i#=>1并改变@@i在一个中改变它在两个中:Bar.i=2pFoo.i#=>2pBar.i#=>2类实例变量(@)让我们创建一

Ruby 获取对象键作为数组

如果我有这样一个对象,我是Ruby的新手{"apple"=>"fruit","carrot"=>"vegetable"}我怎样才能返回一个只有键的数组?["apple","carrot"] 最佳答案 hash={"apple"=>"fruit","carrot"=>"vegetable"}array=hash.keys#=>["apple","carrot"]就这么简单 关于Ruby获取对象键作为数组,我们在StackOverflow上找到一个类似的问题: h

ruby - 获取类的实例方法列表

我有一个类:classTestClassdefmethod1enddefmethod2enddefmethod3endend如何获取此类中的方法列表(method1、method2、method3)? 最佳答案 TestClass.methods(false)仅获取属于该类的方法。TestClass.instance_methods(假)将返回给定示例中的方法(因为它们是TestClass的实例方法)。 关于ruby-获取类的实例方法列表,我们在StackOverflow上找到一个类似的

ruby - 获取给定名称的实例变量的值

一般来说,我如何才能获得对名称在字符串中的对象的引用?更具体地说,我有一个参数名称列表(成员变量-动态构建,所以我不能直接引用它们)。每个参数都是一个对象,也有一个from_s方法。我想做类似下面的事情(这当然行不通......):define_method(:from_s)do|arg|@ordered_parameter_names.eachdo|param|instance_eval"field_ref=@#{param}"field_ref.from_s(param)endend 最佳答案 实现这一点的最惯用的方法是:som

ruby-on-rails - 如何在 Ruby 中列出一个对象的所有方法?

如何列出特定对象有权访问的所有方法?我有一个@current_user对象,在应用程序Controller中定义:defcurrent_user@current_user||=User.find(session[:user_id])ifsession[:user_id]end并且想看看我在View文件中有哪些可用的方法。具体来说,我想看看:has_many关联提供了哪些方法。(我知道:has_many应该提供什么,但想检查一下。) 最佳答案 下面将列出User类有而Object基类没有的方法...>>User.methods-Obj

ruby - 如何从 ruby​​ 中的字符串名称创建类实例?

我有一个类的名称,我想创建该类的一个实例,以便我可以遍历该类架构中存在的每个rails属性。我该怎么做呢?我有名称作为我要检查的类的字符串我想我需要实例化一个类实例,这样我就可以遍历它的属性并打印它们。 最佳答案 在Rails中你可以这样做:clazz='ExampleClass'.constantize在纯ruby中:clazz=Object.const_get('ExampleClass')带有模块:moduleFooclassBarendend你会用>clazz='Foo::Bar'.split('::').inject(Ob

ruby - 按对象属性对 Ruby 中的对象数组进行排序?

我在RubyonRails中有一个对象数组。我想按对象的属性对数组进行排序。可能吗? 最佳答案 我建议改用sort_by:objects.sort_by{|obj|obj.attribute}特别是如果可以计算属性。或者更简洁的方法:objects.sort_by(&:attribute) 关于ruby-按对象属性对Ruby中的对象数组进行排序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que